package com.example.commonback.controller;

import com.example.commonback.common.dto.CommonParmaDTO;
import com.example.commonback.common.result.Result;
import com.example.commonback.service.CommonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 通用后端 前端控制层
 *
 * @author Lv
 * @date 2022/8/10
 */
@RestController
@RequestMapping("/api/common")
public class CommonController {
    @Autowired
    private CommonService commonService;

    /**
     * 通用分页查询 无条件查询 统计  有条件查询 统计
     *
     * @param commonParmaDTO 通用后端参数传递对象
     * @return
     */
    @PostMapping("/list")
    public Result<?> list(@RequestBody CommonParmaDTO commonParmaDTO) {
        return commonService.list(commonParmaDTO);
    }

    /**
     * 获取详情
     *
     * @param commonParmaDTO 通用后端参数传递对象
     * @return
     */
    @PostMapping("/get")
    public Result<?> get(@RequestBody CommonParmaDTO commonParmaDTO) {
        return commonService.get(commonParmaDTO);
    }

    /**
     * 通用新增或修改 通过operate操作来判断
     *
     * @param commonParmaDTO 通用后端参数传递对象
     * @return
     */
    @PostMapping("/save_or_update")
    public Result<?> saveOrUpdate(@RequestBody CommonParmaDTO commonParmaDTO) {
        return commonService.saveOrUpdate(commonParmaDTO);
    }

    /**
     * 通用删除
     *
     * @param commonParmaDTO 通用后端参数传递对象
     * @return
     */
    @PostMapping("/delete")
    public Result<?> delete(@RequestBody CommonParmaDTO commonParmaDTO) {
        return commonService.delete(commonParmaDTO);
    }
}
